/*

This file is part of roomyak.

Copyright (C) 2008 Pixecur Technologies Incorporated (Esotera).
Visit Esotera at http://www.esoteras3.com
 
roomyak is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3, or (at your option)
any later version.
 
roomyak is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
General Public License for more details.
 
You should have received a copy of the GNU General Public License
along with roomyak; see the file COPYING.  If not, write to 
Pixecur Technologies, 213-31 Peet Street, St. John's, NL, A1B 3W8. 
 
Linking this library statically or dynamically with other modules is
making a combined work based on this library.  Thus, the terms and
conditions of the GNU General Public License cover the whole
combination.
 
*/
package com.datasentinel.util.ui.gesture;


public interface StatusCallback
{
	enum Status {
		INDETERMINATE(0), PROCEED(1), ABORT(2), PROCEED_ALL(4), ABORT_CURRENT(5);
		
		private final int value;

		private Status(int value)
		{
			this.value = value;
		}

		public int getValue()
		{
			return value;
		}
	}	
	
	enum Error {
		SUCCESS(0), FILE_EXISTS(1), FAILURE(-1);
		
		private final int value;

		private Error(int value)
		{
			this.value = value;
		}

		public int getValue()
		{
			return value;
		}
	}	
	
	public void notifyBeforeCompleted(Object currentTarget, Object argument);
	
	public Status reportCompleted(Object currentTarget);
	
	public Status reportWait(Object currentTarget);
	
	public Status reportProgress(int totalPercents, int currentPercents, Object currentTarget);

	public Status reportError(Object target, Error error, Object report);
}
